package com.oscar.ehome.provider.zxing.client.android.util;

import android.graphics.Matrix;

public class Util {
    public static void prepareMatrix(Matrix matrix, boolean mirror, int displayOrientation,
                                     int viewWidth, int viewHeight) {


/*
        set用于设置Matrix中的值。

        pre是先乘，因为矩阵的乘法不满足交换律，因此先乘、后乘必须要严格区分。先乘相当于矩阵运算中的右乘。

        post是后乘，因为矩阵的乘法不满足交换律，因此先乘、后乘必须要严格区分。后乘相当于矩阵运算中的左乘。*/
        // Need mirror for front camera.
        matrix.setScale(mirror ? -1 : 1, 1);//缩放变换
        // This is the value for android.hardware.Camera.setDisplayOrientation.
        matrix.postRotate(displayOrientation);//旋转变换
        // Camera driver coordinates range from (-1000, -1000) to (1000, 1000).
        // UI coordinates range from (0, 0) to (width, height).
        //修改
        matrix.postScale(viewWidth / 2500f, viewHeight / 2500f);
        matrix.postTranslate(viewWidth / 2f, viewHeight / 2f);//平移变换
    }
}
